The present invention generally relates to telecommunications. The invention relates more specifically to communicating voice and call signaling information over packet data networks, and managing multiple sessions of such communications.
There is significant market need and technical interest in finding ways to communicate voice information and call signaling information over existing data networks. An example application in this field is sending telephone calls, including both the voices of the calling parties and call set-up, tear-down, and related signaling information, over a packet-switched data network. There is particular interest in providing telephone call capability over the global, packet-switched public data network known as the Internet. A key motivation for this technology is that voice calls carried over the Internet do not incur telephone call toll charges, which are imposed by long-distance carriers and certain local telephone call carriers in the public switched telephone network. In short, voice-over-Internet technology may offer callers the ability to place low-cost calls over open protocol networks.
A significant leap forward in this field has been taken by the introduction of protocol conversion and signaling connection systems. An example of such a system is the Cisco SC2200 Signaling Converter, commercially available from Cisco Systems, Inc. Other examples of such a system are described in U.S. patent application Ser. No. 08/904,295 entitled xe2x80x9cUniversal Protocol Conversion,xe2x80x9d filed on Jul. 31, 1997 by Lev Volftsun, Clay H. Neighbors, David S. Turvene, Fred R. Rednor, Anatoly V. Boshkin, and Mikhail Rabinovitch, the entire contents of which are hereby incorporated by reference as if fully set forth herein (the xe2x80x9cProtocol Converter Disclosurexe2x80x9d).
Generally, such systems provide a highly specialized computer system that interfaces to the data network and the public switched telephone network. The computer system executes one or more signaling protocol software applications to carry out the function of the system. The computer system may include a gateway that passes data signals to the telephone network and a media gateway controller that controls the gateway under control of a processor in the computer system.
One or more protocol converters may be configured, by running appropriate application software, as call processing devices or as signaling terminal devices. In some configurations, a call processing device is located logically remote from a signaling terminal device, coupled to it by an Internet Protocol (IP) network. In this configuration, there is need to send telephone call signaling information, formatted according to standard telephony protocols, from a signaling terminal device back across the IP network to a call processing device. This is called xe2x80x9cbackhaulingxe2x80x9d the signaling information.
A disadvantage of voice-over-Internet systems is that the Internet is open, unregulated, and therefore much less reliable than the public switched telephone network, which is closed and governed carefully by the telephone companies. This disadvantage can cause acute problems when backhauling is carried out.
To provide reliable backhaul, it is important to be able to maintain multiple IP connections or sessions between the signaling terminal device and the call processing device, so that message can be transmitted even when the inherently unreliable IP network fails. The system must be configured so that communications are not interrupted upon network failure, and so that communications can resume when the network comes back up.
One approach to this problem is to allow multiple sessions to be established between nodes of the network. When the IP network fails, one node may switch over to a second, separate session that travels over a different IP network path and therefore bypasses the failure. However, past solutions generally can manage only one session used by a particular signaling path and channel. There is a need for a lightweight management layer below the signaling protocol application to manage sessions used by signaling paths and channels.
One possible approach is to add session management capabilities to the call signaling protocol. However, this is undesirable. Since such an approach involves modifying an established, standard call protocol, it could require extensive study by standards development organizations or the telephone carriers.
There is also a need for a management layer that can use a session group or session set, to maintain multiple connections between a given gateway (acting as client) and media gateway controller (acting as server). This would increase availability of the gateway.
There is particular a need for a system, method or mechanism that can manage multiple Internet Protocol data communication sessions for increased redundancy.
There is also a need for a system, method or mechanism that provides a way to switch from one session to another in the event that one session fails, without losing, duplicating or dropping messages, or calls that are associated to them.
There is also a need for such a system, method or mechanism that can support fault tolerant hardware configurations for the media gateway controller.
There is also a need for such a system, method or mechanism that can save or temporarily hold messages communicated between the network nodes while a fault tolerant switchover procedure is occurring, to prevent such messages from being lost, duplicated or discarded.
The foregoing needs and objects, and other needs and objects that will become apparent from the following description, are fulfilled by the present invention, which comprises, in one embodiment, a session manager that can manage multiple data network voice communication sessions for increased redundancy. The session manager operates logically above a reliable communication layer. The reliable communication layer determines when or if a session is connected or failed, and may notify the session manager about changes in session state.
The session manager carries out management operations based on availability and priority of each session. The session manager can seamlessly switch a call or signaling information from one IP session to another upon a failure without interruption in service to the signaling protocol. The session manager can manage the fault tolerant configurations of the media gateway controller. The session manager can seamlessly switch message traffic from the gateway to the current active media gateway controller hardware.
In one aspect, the invention provides a method of providing continuous voice and call communications between a data network and a telephony network, comprising the steps of establishing a first session and a second session between a first gateway controller that receives the communications from the data network and a gateway that couples the communications to the telephony network; and when the first session fails, switching over the communications from the first session to the second session while maintaining the voice and call communications and while ensuring that all messages generated by the gateway are sent to the gateway controller.
According to one feature, the method involves providing a session manager server in the first gateway controller; and in the gateway, providing a session manager client that is logically coupled to and served by the session manager server. In a related feature, providing a session manager server comprises the steps of providing a session manager server in the first gateway controller, executed in a logical layer below a signal processing application and above a reliable transport layer.
In another feature, the method involves initializing to an idle state; in response to creation of a session, entering an out of service state; when the session becomes the primary in service session, entering an in service state. According to a related feature, the method further involves, when the first session fails, entering a recovery state; starting a timer set to a pre-determined time value; and returning to the in service state if the first session is restored as the primary session before the timer expires. A related feature involves remaining in the recovery state if another session is created when in the recovery state. Yet another related feature involves entering the out of service state if the timer expires and the first session has not been restored as the primary session.
According to another feature, the method further comprises storing a priority value in association with each session; entering an in service state from the out of service state when the session having the highest priority value becomes the primary in service session; entering a switchover state from the in service state when that session fails; and entering a degraded state from the switchover state when another session having a lower priority value becomes the primary in service session.
The method may also involve re-entering the in service state from the switchover state when the session having the highest priority again becomes the primary in service session, and re-entering the switchover state from the degraded state when the session having the highest priority again becomes the primary in service session.
In another feature, the method provides for starting a switchover timer that is set to a pre-determined time value; and entering the out of service state from the switchover state when no session becomes the primary in service session before the switchover timer expires. A related feature involves accumulating a switchover-failure counter each time that the out of service state is entered from the switchover state; and entering an unstable state when the switchover-failure counter is equal to a pre-determined count.
Yet another related feature involves entering the degraded state from the out of service state when a session having a priority value that is less than the highest priority value becomes the primary in service session.
According to another feature, the method provides for establishing the first session and the second session between a second gateway controller and the gateway; providing a second session manager server in the second gateway controller; and in each of the session manager servers: initially operating in an idle state; entering an out of service state from the idle state when the first session is added and becomes in service; and entering an in service state when the first session becomes the primary in service session.
In another feature, the method further comprises notifying the session manager client that the session manager server is active. A related set of features provides, in the session manager client: initially operating in an idle session state; entering an out of service state from the idle session state when a session becomes available; entering an active in service state from the out of service state when an Active notification is received over the first session and when no Standby notification has been received over any session.
The method may also involve, when the session manager client is in the switchover state, queuing messages to be communicated from the session manager client to the session manager server. In a related feature, the method involves, when the session manager client is in the full in service state: receiving a hold notification; in response to receiving a hold notification, activating a queue that is stored in association with the session manager client and storing each message of the session manager client directed to the session manager server in the queue. The method may also provide for, when the session manager client is in the active in service state: receiving a notification to resume sending messages; in response to the notification to resume sending messages, sending each message in the queue from the session manager client to the session manager server.
Still other features and aspects will become apparent from the following detailed description. The invention also encompasses a computer-readable medium, an apparatus, and a system that may be configured to carry out one or more of the foregoing steps.